﻿// 项目课程设置模块的辅助脚本
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
    // 定义全局变量存储当前选中的项目ID
    window.currentSelectedProjectId = 0;
    
    // 初始化辅助函数
    var Helper = {
        init: function() {
            // 初始化时设置全局变量
            window.currentSelectedProjectId = $("#project-select").val() || 0;
            // 项目选择框变化时更新全局变量
            $(document).on("change", "#project-select", function() {
                var projectId = $(this).val() || 0;
                window.currentSelectedProjectId = projectId;
                // 刷新表格，使用完整URL参数
                if (projectId > 0) {
                    var url = $.fn.bootstrapTable.defaults.extend.index_url;
                    if (url.indexOf('?') > -1) {
                        url = url.split('?')[0] + '?publicwelfare_id=' + projectId;
                    } else {
                        url = url + '?publicwelfare_id=' + projectId;
                    }
                    $("#table").bootstrapTable('refresh', {url: url});
                } else {
                    $("#table").bootstrapTable('refresh');
                }
            });
            
            // 重写添加按钮的URL
            $(document).on('click', '.btn-add', function () {
                var publicwelfare_id = window.currentSelectedProjectId;
                var url = Table.api.defaults.extend.add_url;
                if (publicwelfare_id > 0) {
                    url += (url.indexOf("?") > -1 ? "&" : "?") + "publicwelfare_id=" + publicwelfare_id;
                }
                
                // 打印调试信息
                // 打开添加窗口并传递项目ID
                var options = $.extend({}, $(this).data() || {});
                options.callback = function(index, layero) {
                    // 当窗口加载完成后的回调
                    var iframe = $(layero).find('iframe')[0];
                    if (iframe && iframe.contentWindow) {
                        try {
                            // 尝试设置项目选择框的值
                            var select = iframe.contentWindow.document.getElementById('c-publicwelfare_id');
                            if (select && publicwelfare_id > 0) {
                                // 使用setTimeout确保选择框已经初始化
                                setTimeout(function() {
                                    select.value = publicwelfare_id;
                                    $(select).trigger('change');
                                }, 500);
                            }
                        } catch (e) {
                        }
                    }
                };
                Fast.api.open(url, __('Add'), options);
                return false;
            });
            
            // 监听表格刷新按钮
            $(document).on('click', '.btn-refresh', function() {
                var projectId = window.currentSelectedProjectId;
                if (projectId > 0) {
                    var url = $.fn.bootstrapTable.defaults.extend.index_url;
                    if (url.indexOf('?') > -1) {
                        url = url.split('?')[0] + '?publicwelfare_id=' + projectId;
                    } else {
                        url = url + '?publicwelfare_id=' + projectId;
                    }
                    $("#table").bootstrapTable('refresh', {url: url});
                } else {
                    $("#table").bootstrapTable('refresh');
                }
            });
        }
    };
    
    return Helper;
});
